const app = getApp()

Page({

    data: {
        userNum: '',
        //取件码
        time: '',
        //取件时间
        logIndex: 0 ,
        //申请记录的数组下标
        arrayLength: '',
        //数组长度
        lastCheck: 0,
        //到达左界的次数
        nextCheck: 0,
        //到达右界的次数
    },
    //全局变量

    onShow : function(){
        this.askCheck()
    },
    //默认显示的界面

    askCheck:function(){
        //查询用户的记录
        const db = wx.cloud.database()
        db.collection('userInfo').where({
            _openid: this.data.openid,
        }).orderBy('submit_time', 'desc').get({
            success: res => {
                if(res.data.length==0){
                    wx.showToast({
                        icon: 'none',
                        title: '暂无记录',
                        duration: 3000
                    })
                }
                else{
                    this.pageShow(this.data.logIndex)
                }
            }
        })
    },

    pageShow: function (log_index) {
        //从表userInfo
        //获取用户this.data.openid的
        //第log_index个记录

        const db = wx.cloud.database()

        db.collection('userInfo').where({
            _openid: this.data.openid,
        }).orderBy('submit_time', 'desc').get({
            success: res => {
                //此种success的函数写法，可以调用this.data
                //若是function形式，则需使用this.setData来带出数据
                
                console.log('查询到的取件码是 ',res.data[log_index].userNum)
                this.setData({
                    userNum: res.data[log_index].userNum,
                    time: res.data[log_index].time,
                    submit_date: this.formatDate(res.data[log_index].submit_time),
                    submit_time: this.formatTime(res.data[log_index].submit_time),
                })

                //console.log('[数据库] [查询记录] 成功: ', res)

                this.data.arrayLength = res.data.length
                //带出数组长度

                //console.log('数组长度赋值带出成功: ',this.data.arrayLength)
            },
            fail: err => {
                wx.showToast({
                    icon: 'none',
                    title: '查询记录失败'
                })

                //console.error('[数据库] [查询记录] 失败：', err)
            },
        })
    },
    /**
     * new Date() ---> 转化为 年 月 日 时 分 秒
     * let date = new Date();
     * date: 传入参数日期 Date
     */

    formatDate: function (date) {
        var year = date.getFullYear()
        var month = date.getMonth() + 1
        var day = date.getDate()
        return [year, month, day].map(this.formatNumber).join('/')
    },
    
    formatTime: function (date) {
        var hour = date.getHours()
        var minute = date.getMinutes()
        var second = date.getSeconds()
        return [hour, minute, second].map(this.formatNumber).join(':')
    },

    formatNumber: function (n) {
        n = n.toString()
        return n[1] ? n : '0' + n
    },

    queryLast: function () {

        this.data.logIndex = --this.data.logIndex > -1 ? this.data.logIndex : 0
        //判断索引是否越界，确保logIndex合法

        this.data.nextCheck = this.data.nextCheck > 1 ? 0 : this.data.nextCheck
        //达到右界后向左，则到达右界的次数归零

        this.data.logIndex == 0 ? this.data.lastCheck++ : 0
        //标记到达左界的次数

        // --------------------------------------------------
        // console.log('last')
        // console.log('此时的logindex: ',this.data.logIndex)
        // console.log('此时的lastcheck: ',this.data.lastCheck)
        // console.log('此时的nextcheck: ',this.data.nextCheck)
        // --------------------------------------------------

        if (this.data.lastCheck > 1) {
            wx.showToast({
                icon: 'none',
                title: '这是最新的一件'
            })
            return
        }
        //第二次到达左界，即提示越界

        //--------------------------------------------------
        //console.log('last前的index: ',this.data.logIndex)
        //--------------------------------------------------

        this.pageShow(this.data.logIndex)
        //展示查询结果

        //--------------------------------------------------
        //console.log('last后的index: ',this.data.logIndex)
        //--------------------------------------------------
    },

    queryNext: function () {

        this.data.logIndex = ++this.data.logIndex < this.data.arrayLength ? this.data.logIndex : this.data.arrayLength-1
        //判断索引是否越界，确保logIndex合法

        this.data.lastCheck = this.data.lastCheck>1 ? 0 : this.data.lastCheck
        //达到左界后向右，则到达左界的次数归零

        this.data.logIndex == this.data.arrayLength-1 ? this.data.nextCheck++ : 0
        //标记到达右界的次数
        
        // --------------------------------------------------
        // console.log('next')
        // console.log('此时的logindex: ',this.data.logIndex)
        // console.log('此时的lastcheck: ',this.data.lastCheck)
        // console.log('此时的nextcheck: ',this.data.nextCheck)
        // --------------------------------------------------

        if (this.data.nextCheck > 1 ) {
            wx.showToast({
                icon: 'none',
                title: '这是最早的一件'
            })
            return
        }
        //第二次到达右界，即提示越界

        //--------------------------------------------------
        //console.log('next前的index: ',this.data.logIndex)
        //console.log('next中的arrayLength: ',this.data.arrayLength)
        //--------------------------------------------------

        this.pageShow(this.data.logIndex)
        //展示查询结果

        //--------------------------------------------------
        //console.log('next后的index: ',this.data.logIndex)
        //--------------------------------------------------
        
    }

})
